package com.saver.core.persistence;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.util.Log;

import com.saver.core.domain.MensajeTexto;

public class MensajeTextoInbox {
	
	private static final String TAG = "MensajeTextoInbox";
	
	private Context context;
	private Uri uriSMS;
	
	public MensajeTextoInbox(Context context) {
		this.context = context;
		uriSMS = Uri.parse("content://sms/inbox");
	}
	
	public List<MensajeTexto> buscarTodo (String numero, long fecha) {
		StringBuilder builder = new StringBuilder("DATE > ").
				append(fecha).append(" AND ADDRESS = '").append(numero).append("'");
		
		String consulta = builder.toString();
		Log.d(TAG, "consulta: " + consulta);
		Cursor cursor = context.getContentResolver().query(uriSMS, null, consulta, null, null);
		
		ArrayList<MensajeTexto> mensajeTextos = new ArrayList<MensajeTexto> ();
		while (cursor.moveToNext()) {
			MensajeTexto mensajeTexto = crearMensajeTexto(cursor);
			mensajeTextos.add(mensajeTexto);
		}
		Log.i(TAG, "resultados: " + mensajeTextos.size());
		
		return mensajeTextos;
	}

	private MensajeTexto crearMensajeTexto(Cursor cursor) {
		int dateColumn = cursor.getColumnIndex("date");
		int numberColumn = cursor.getColumnIndex("address");
		int bodyColumn = cursor.getColumnIndex("body");
		
		MensajeTexto mensajeTexto = new MensajeTexto();
		mensajeTexto.setDate(cursor.getLong(dateColumn));
		mensajeTexto.setBody(cursor.getString(bodyColumn));
		mensajeTexto.setAddress(cursor.getString(numberColumn));
		return mensajeTexto;
	}
}
